Modern software applications are generally designed to work across local and remote networks for implementing the functionality of the application. Such software applications typically use remote file systems to store shared resources and files. These shared resources are generally accessed through server protocols such as File Transfer Protocol (FTP), Secure FTP (SFTP), Local Area Network (LAN), and the like. When a user desires to edit or modify such a shared file, the file is typically downloaded from the remote file system, edited or modified by the user, and then stored back onto the remote file system using the server protocol.
While this remote editing procedure allows users to edit such remotely stored, shared documents, it is also possible that two or more users of the remote file system each may wish to modify the same document at the same time. If this happens, it may be possible for the users to inadvertently overwrite the other's changes. In order to prevent such overwriting, locking mechanisms have been developed that lock the resource being used so that other users cannot download and/or modify the document while it is checked out and locked. Similar locking mechanisms have been built into newer server protocols used in newer remote file systems, such as Web Distributed Authoring and Versioning (WebDAV) systems. Moreover, native or local file systems, such as MICROSOFT CORPORATION's NT File System (NTFS), have also developed locks to prevent multiple users from operating on the same document. In such cases, locking features have simply been developed and/or included within new applications and system.
Operating system developers have also attempted to address this problem through the development of the atomic lock or test-and-set principle. When a call is made to edit or access a shared a resource, the system tests to determine if a lock can be acquired (i.e., the “test”), and, if so, acquires the lock (i.e., the “set”), returning the results of the operation. In such operating systems, the developers were able to code the test-and-set process as a single operating system operation. Thus, it generally executes very quickly. A single system operation is sometimes referred to as an atomic operation. However, even though these newer protocols and file systems have been specifically developed with direct, atomic locking features, there are still numerous file systems implemented using existing technologies, such as FTP and SFTP, that typically have no efficient, reliable means for locking files.